/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vzone.structs;

import java.io.Serializable;
import java.util.UUID;

/**
 *商品可序列化基类
 * @author Kingpro
 */
public class BaseObject implements Serializable
{

    /**
     *
     */
    public UUID CompanyIdUuid;
    /**
     * 物品的UUID
     */
    public UUID IdUuid;
    /**
     * 物品名称
     */
    public String NameS;
    /**
     * 物品价格
     */
    public double SaleMoneyD;
    /**
     * 物品数量
     */
    public int CountI;

    public double CostsD;



    /**
     * 构造函数 自动生成UUID 其余默认初始化
     */
    public BaseObject()
    {
	this(null, 0, 0);
    }

    /**
     * 构造函数 从一个对象赋值
     * @param bobj 需要复制的对象
     */
    public BaseObject(BaseObject bobj)
    {
	IdUuid = bobj.IdUuid;
	NameS = bobj.NameS;
	SaleMoneyD = bobj.SaleMoneyD;
	CountI = bobj.CountI;
    }

    /**
     * 构造函数 初始化所有值
     * @param idUuid UUID
     * @param nameS 商品名称
     * @param saleMoneyD 商品价格
     * @param countI 商品数量
     */
    public BaseObject(UUID idUuid, String nameS, double saleMoneyD, int countI)
    {
	IdUuid = idUuid;
	NameS = nameS;
	SaleMoneyD = saleMoneyD;
	CountI = countI;
    }

    /**
     * 构造函数 自动生成UUID
     * @param nameS 商品名称
     * @param saleMoneyD 商品价格
     * @param countI 商品数量
     */
    public BaseObject(String nameS, double saleMoneyD, int countI)
    {
	this(UUID.randomUUID(), nameS, saleMoneyD, countI);
    }

    /**
     * 构造函数 从字符串创建UUID
     * @param idUuidS UUID字符串
     * @param nameS 商品名称
     * @param saleMoneyD 商品价格
     * @param countI 商品数量
     */
    public BaseObject(String idUuidS, String nameS, double saleMoneyD, int countI)
    {
	this(UUID.fromString(idUuidS), nameS, saleMoneyD, countI);
    }

}